System and method of managing internet browser navigation

ABSTRACT

The present invention provides a system and method of managing Internet browser navigation. Software code designed to interact with and control the user&#39;s Internet browser is embedded into web pages made available to remote users by a web server. Embedded software code is read by the user&#39;s Internet browser upon loading a requested web page. Embedded software code directs the browser to store one or more attributes upon the remote user&#39;s computer system. Stored attributes may then be compared to attributes embedded within subsequently requested web pages to determine if the requested web page, or a corrected web page, should be displayed.

This utility application is based upon and claims priority on a United States Patent Application entitled “Browser Navigation Process for Static and Transactional Pages”, Ser. No. 60/539,394, having a filing date of Jan. 27, 2004.

FIELD OF THE INVENTION

The present invention relates generally to Internet browsers and, more particularly, to a system and method of managing Internet browser navigation.

BACKGROUND OF THE INVENTION

The Internet has emerged as a large community of electronically connected users located around the world who readily and regularly exchange significant amounts of information. The Internet continues to serve its original purpose of providing access an exchange of information among government agencies, laboratories, and universities for research and education. In addition, the Internet has evolved to serve a variety of interests and forums that extend beyond its original goals.

In its infancy, the Internet was designed to provide for the static exchange of information. As such, conventional browsers were sufficient in that they allowed the user to proceed forward and backward through a number of informational web pages without the need to reload each page from the server. In this manner, conventional web browsers allowed the user to retrace their steps through any number of visited web pages.

However, today's Internet provides much more than just static information. In fact, many web based applications offer and/or require sensitive transactional information. For such web pages, use of conventional browser functionality may result in undesirable consequences.

There remains a need for a system and method capable of facilitating effective Internet navigation for transactional pages without the disadvantages associated with conventional browser functionality.

SUMMARY OF THE INVENTION

Accordingly, the present invention provides a system and method of managing Internet browser navigation. The present invention provides a web server designed to provide web pages to remote users via a computer network. Software code designed to interact with and control the user's Internet browser is created and embedded into web pages made available to the user by the web server. Embedded software code is read by the browser upon loading the web page requested by the remote user. In one embodiment, this software code directs the browser to store one or more attributes upon the remote user's computer system.

Stored attributes may then be compared to attributes embedded within subsequently requested web pages to determine if the requested web page should be displayed. In one embodiment, the requested web page is displayed if one or more of the compared attributes match. However, if a mismatch occurs, the browser is directed to request a corrected web page from the web server. In one embodiment, corrected web pages contain one or more informational statements designed to inform the user that their browser's functionality does not work on the displayed page and directs the user to make use of alternate functionality provided on the corrected page.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawing; it being understood that the drawings contained herein are not necessarily drawn to scale; wherein:

FIG. 1 is a component diagram illustrating one embodiment of the present invention.

FIG. 2A is a process flow diagram illustrating the web page loading process of one embodiment of the present invention.

FIG. 2B is a process flow diagram illustrating the browser function management process of one embodiment of the present invention.

FIG. 3 is a screen shot of the graphic user interface of one embodiment of the present invention.

FIG. 4 is a process flow diagram illustrating the attribute comparison process of one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is herein described as a system and method of managing browser navigation. The browser navigation system (10) of the present invention provides a web server (12) having access to a plurality of web pages (14). The web pages utilized by the web server of the present invention may be stored locally and/or accessed through an external storage medium (not shown). Web pages may be utilized to facilitate online interaction with one or more users. Such web pages may also be utilized to provide the user with the opportunity to engage in electronic commerce.

Access to the web pages provided by the web server of the present invention may be provided via a computer network (18). Further, firewalls (not shown) may be utilized to control access to the web server and/or protect the system against harmful viruses.

In one embodiment, the present invention interacts with an Internet browser (16) capable of connecting to the web server via a computer network. The present invention is capable of interacting with any number of Internet browser applications, including, but not limited to, those provided by Microsoft® and Netscape®. Further, any number of known computer systems (20) and/or electronic devices having Internet access capability may load and display the web pages provided by the present invention.

The web server (12) of the present invention is capable ofmanaging the browser's interaction with the system. In one embodiment, an Advanced IBM Unix/websphere application server is utilized. In another embodiment, web server technology such as a server farm of Intel Pentium 4/MS Windows servers running Microsoft's IIS, or a Sun Microsystems E10000/Solaris running IBM's websphere or BEA's web logic servers is utilized by the present invention to facilitate customer interaction. The graphic user interface (22) provided by the present invention is viewable by the user as presented by the Internet browser. In one embodiment, different JavaServerPage (JSP) templates are utilized by the web server (12) to build and display the interface (22) seen by the user.

In one embodiment, the web server of the present invention may contain any number of software packages designed to facilitate effective interaction with the user through his or her Internet browser. In one embodiment, the web server contains software code relating to individual business applications (26) as well as browser management software code (24) designed to support the interaction between browsers and individual web pages. In one embodiment, browser management software is created and made available to the web server. Such software may be embedded into individual web pages such that it accompanies each web page upon loading. In one embodiment, browser management software is designed to interact with and direct Internet browser behavior.

In one embodiment, browser management software is set up and initialized upon the web server prior to inclusion into individual web pages. In this manner, each web page provided to the Internet browser by the web server may be equipped with embedded software code capable of manipulating browser operation. Such code may be stored within the body of individual web pages and/or within the HTTP Header of individual pages.

The embedded software code provided by the present invention contains electronic information and/or instructions designed to direct the operation of the Internet browser. Such information may be utilized to direct the browser to take specific action and/or manipulate web page content upon loading a requested web page. In one embodiment, embedded software code may result in an alteration of the content ultimately displayed to the user via the graphic user interface. Software code embedded into individual web pages may also be utilized to instruct the browser regarding issues relating to web page caching. In one embodiment, each web page contains software code designed to instruct the web browser to automatically cache, i.e., store, each web page upon the user's system.

The unique functionality of the present invention may be selectively applied to particular web pages. In order to apply the unique functionality of the present invention to selected web pages, the embedded software code may contain one or more identifiers for the browser to consider upon web page retrieval. In short, an identifier may be placed within the embedded software code to enable the browser to determine which web pages will be subject to the enhanced browser navigation process of the present invention. Thus, in one embodiment, only those web pages having dynamic and/or transactional properties will have an identifier indicating that the web page is subject to the browser navigation process of the present invention.

Referring to FIG. 2A, web pages containing embedded software code may be loaded for display upon the user's computer system upon request. When the user indicates that he or she would like to view a particular web page, the web server receives the request and retrieves the web page for loading upon the user's browser, as illustrated by Boxes (28) and (30). At this time, the embedded software code within the requested page is read by the user's Internet browser, as illustrated by Box (32). The browser then takes one or more actions as directed by the embedded software code.

In one embodiment, such actions may include the storage of one or more attributes associated with the requested web page, as illustrated by Boxes (34) and (36). In this context, attributes may be defined as software code having one or more values capable of distinguishing one web page from another. In one embodiment, attributes comprise a string of software code having a value capable of informing the browser whether to load a particular page or to request a corrected page from the web server, as discussed further below. Attributes may be stored within cookies placed upon and/or residing upon the user's computer system.

Once the embedded software code has been read and acted upon by the browser, the requested page is displayed upon the graphic user interface of the user's system, as illustrated by Box (38). At this time, any and all attributes stored upon the user's system are updated to reflect that the requested page has been displayed, as illustrated by Box (40) and explained in greater detail below.

Referring to FIG. 2B, when the user utilizes browser functionality, i.e., uses the back button, forward button, refresh button, and/or bookmarks to request a second web page from the browser's history, the web server retrieves the second page to allow the user's browser to load it for viewing, as illustrated by Boxes (42) and (44). While the next page is being loaded, the browser, once again, reads any software code embedded within the requested page, as illustrated by Box (46).

If the browser navigation management process of the present invention is activated, the embedded software code of the requested page instructs the browser to compare the stored attributes previously deposited upon the user's system to the attributes embedded upon the newly requested page, as illustrated by Box (48). If one or more of the attributes match, the newly requested page is displayed by the browser, as illustrated by Boxes (50) and (52). In this example, the navigation management process of the present invention determined, through attribute comparison, that displaying the second page requested by the user will not adversely affect the business process offered by the web pages provided by the web server, as discussed in greater detail below.

In contrast, if no matches are found, the browser is instructed to request a corrected page from the web server, as illustrated by Box (54). The corrected web page may then be displayed for review by the user, as illustrated by Box (56).

Referring to FIG. 3, in one embodiment, a corrected web page (57) provides one or more statements (58) to the user designed to inform them that the functionality provided by the Internet browser they are attempting to use is not available. For example, if the user tried to use the “back” button on their conventional Internet browser for a transactional web page, the corrected web page would be displayed instead of the web page requested by the user. This feature of the present invention protects the user from mistakes associated with using conventional browser functionality, such as double orders, “Page Expired” notices, etc.

The corrected web page (57) may also provide alternate navigation functionality. In one embodiment, the corrected web page provides alternate browser functionality (60) in the form of “previous” and “next” navigational buttons and/or links designed to allow the user to effectively navigate through the web pages provided by the web server. This feature of the present invention ensures that the user does not utilize conventional browser functionality to their detriment.

In one embodiment, attributes comprise a string whose value may be set to “true” or “false.” The embedded code within a requested web page directs the browser to store this string within a cookie held upon the user's computer system. In one embodiment, cookies placed upon the user's local system are not persistent, i.e., they are stored upon the user's system temporarily and do not remain after the user logs off the web server provided by the present invention.

Once the page has been loaded, the value of the string held upon the user's system is set to “false” by the web server. Once the page has been displayed, the browser checks the attribute's value and changes it to “true.” In one embodiment, this attribute updating action is done to set up a condition where a web page requested from browser cache will be able to determine that a requested web page has not been immediately provided by the server because the attribute value has been set to “true.” In this example, the browser would be directed to compare the attributes of the requested page to those stored upon the user's system. If the attributes do not match, a corrected page is requested from the server.

In one embodiment, time stamps may also be utilized to assist in making a determination as to whether a requested page or a corrected page should be loaded. In one embodiment, each requested page is equipped with a time stamp indicating when the page was first provided from the server. Further, code embedded within the requested web page may be utilized to instruct the browser to store a timestamp associated with the web page upon the user's system.

This feature of the present invention allows the time stamp held within the cookie upon the user's system to be compared to the time stamp within the embedded code of a newly requested page. In this example, the value of the cookie would be the time stamp of the last page provided by the server. If the compared time stamps do not match, the browser may request a corrected page.

Further, if the user utilizes a conventional browser function, i.e., back, forward, refresh, home, etc., in an attempt to reach a cached web page, the browser is instructed to compare the time stamp of the cached page to the time stamp found in the cookie stored upon the user's system. Again, if the time stamps in this example do not match, the browser is instructed to request a corrected web page.

Referring to FIG. 4, embedded browser navigation software code may be applied selectively to individual web pages. As such, attributes stored upon the user's local system may be turned “on” or “off” by software code found within subsequently requested web pages. In one embodiment, an “on the fly” determination may be made by the web page software code, the web server, and/or the browser as directed by the embedded code, as to whether attribute(s) shall be “on” or “off”, given the type of web page requested. In this example, an inactive attribute, i.e., having an “off” designation, would not initiate the comparison step described above, thus allowing the user to utilize conventional browser functions without attribute comparison.

Boxes (64) and (66) illustrate an example of where the attribute status is checked by the browser and changed, if necessary, to an active designation to facilitate the comparison process of the present invention. In one embodiment, transactional web pages having input fields or providing data communication relating to a business process may be predefined by the system as having active attributes, i.e., having an “on” designation. Transactional pages include, but are not limited to, form input pages for entering data, verify pages for verifying data, and results/confirmation pages including electronic checkouts and/or receipt displays. In some cases, the factual circumstances surrounding a potential business transaction will dictate the order and content of web pages provided to the user.

If the attribute is active and the stored attribute timestamp matches the timestamp on the newly requested page, the requested page is displayed, as illustrated by Boxes (68) and (52). However, if a mismatch occurs, a corrected page is requested from the server and displayed instead, as illustrated by Boxes (68), (54), and (56).

In one embodiment, web page URL addresses corresponding to corrected web pages are included as part of the embedded code within requested web pages. This feature of the present invention allows the browser to request a specific URL from the web server whenever a mismatch occurs, resulting in improved communication between the browser and the web server.

Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limited sense. Various modifications of the disclosed embodiments, as well as alternative embodiments of the invention, will become apparent to persons skilled in the art upon reference to the description of the invention. It is, therefore, contemplated that the appended claims will cover such modifications that fall within the scope of the invention. 

1. A method of managing browser navigation, wherein at least one web page contains software code, said software code containing instructions for governing the operation of a browser, comprising the steps of: receiving a request for a first web page; reading software code embedded within said first web page; directing said browser to store at least one indicator wherein said at least one indicator comprises one from the set of software code having one or more values capable of distinguishing one web page from another, a boolean, and a timestamp; directing said browser to update at least one of said indicators as directed by said code within said first web page: receiving a request, via a browser function, for a second web page; reading software code embedded within said second web page; instructing said browser to compare said updated indicator to said embedded code within said second web page; determining that at least one of said updated indicators is not equal to at least one indicator in said embedded code of said second web page; and receiving a request from said browser for a corrected version of the second web page and instructing said browser to display said corrected web page, wherein said corrected web page provides alternate navigational functionality that is not provided by said browser.
 2. The method of claim 1, wherein said corrected web page displays at least one statement to the user, wherein the statement informs the user that the functionality provided by the browser the user is attempting to use is not available.
 3. The method of claim 1, wherein said alternate navigational functionality comprises buttons and/or links designed to allow the user to effectively navigate between web pages.
 4. The method of claim 1, wherein said browser function comprises functionality for navigating web pages contained in said browser's history.
 5. The method of claim 4, wherein said browser function comprises a back button.
 6. The method of claim 1, further comprising the additional step of: directing said browser to store one or more of said indicators inside a cookie.
 7. The method of claim 1, wherein said software code instructs said browser to store each displayed web page.
 8. The method of claim 1, wherein at least one of said indicators comprises a value.
 9. The method of claim 8, wherein said value comprises true or false.
 10. The method of claim 1, wherein at least one of said indicators comprises one or more indicator timestamps.
 11. The method of claim 1, wherein said embedded code further comprises one or more page timestamps.
 12. The method of claim 11, wherein said embedded code further comprises one or more web page URL designations.
 13. A system for facilitating web browser navigation, comprising: a processor; software code embedded within a first web page, said software code containing instructions readable by said browser; said instructions comprising: instructions to direct said browser to store at least one indicator wherein said at least one indicator comprises one from the set of software code having one or more values capable of distinguishing one web page from another, a boolean, and a timestamp; instructions to direct said browser to update at least one of said indicators as directed by said code within said first web page: instructions for receiving a request for a second web page; instructions for reading software code embedded within said second web page; instructions for instructing said browser to compare said updated indicators to said embedded code within said second web page; instructions for determining that at least one of said updated indicators is not equal to at least one indicator in said embedded code of said second web page; and instructions receiving a request from said browser for a corrected version of the second web page and instructing said browser to display said corrected web page, wherein said corrected web page provides alternate navigational functionality that is not provided by said browser.
 14. The system of claim 13, wherein said alternate navigational functionality comprises a user interface component designed to allow a user to navigate between web pages.
 15. The system of claim 13, wherein said alternate navigational functionality comprises functionality for navigating web pages contained in said browser's history.
 16. A computer readable medium comprising computer executable instructions resulting in the update of at least one attribute of a web page, the instructions comprising: instructions for receiving a request for a first web page; instructions for reading software code embedded within said first web page; instructions for directing said browser to store at least one indicator, wherein an indicator comprises one from the set of software code having one or more values capable of distinguishing one web page from another, a boolean, and a timestamp; instructions for directing said browser to display said first web page; instructions for directing said browser to update at least one of said attributes as directed by said code within said first web page; instructions for receiving a request, via a browser function, for a second web page; instructions for reading software code embedded within said second web page; instructions for instructing the browser to compare said updated attributes to said embedded code within said second web page; and instructions for receiving a request from said browser for a corrected version of the second web page and instructing said browser to display said corrected web page, wherein said corrected web page provides alternate navigational functionality that is not provided by said browser, when at least one of said updated attributes is not equal to at least one attribute in said embedded code of said second web page.
 17. The computer readable medium of claim 16, wherein said instructions further comprise: instructions for storing one or more of said indicators inside a cookie.
 18. The computer readable medium of claim 16, wherein said instructions further comprise: instructions for sending a message to said browser to store each displayed web page. 